//
// Created by 20792 on 24-8-20.
//

#ifndef SEND_WATER_PUMP_H
#define SEND_WATER_PUMP_H
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
#include <assert.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <time.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <sys/shm.h>
#include <signal.h>
#include <pthread.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include "cJSON.h"
// type == 3
typedef struct water_pump {
    int type;
    int pump_type;
    int id;
    char pump_name[20];
	struct water_pump *Next;
}WP;

typedef struct recv_water_pump {
    int id;
    char pump_name[20];
    struct recv_water_pump* next;
}RWP;

// 封装json
char* json_pack_water_pump(WP* pump);

// 发送水泵名称
int send_water_pump(WP* pump,int sock);

// 创建头节点
RWP* create_head_water_pump();

// 接收水泵数据据
WP recv_water_pump(int sock);

// 数据进入链表
void push(WP data, RWP *rwp);

// 遍历链表
void traverse(RWP *rwp);

// 释放链表
void free_water_pump(RWP *rwp);

#endif //SEND_WATER_PUMP_H
